# 异常
# 两个数字除法运算
n1 = input('input1:')
n2 = input('input2:')
# print(n1 / n2)            # 字符串不能除法运算  4 /2 
# TypeError: unsupported operand type(s) for /: 'str' and 'str'（类型错误）

n1 = int(input('input1:'))
n2 = int(input('input2:'))
print(n1 / n2)              # int不支持浮点型 4.5 / 2
# ValueError: invalid literal for int() with base 10: '4.5'（值异常）

n1 = int(input('input1:'))
n2 = int(input('input2:'))
print(n1 / n2)              #  4.5 / 0
# ZeroDivisionError: float division by zero （0不能作为除数）

# 错误处理： 出现错误后，不影响后面的代码的执行
try:
    n1 = float(input('input1:'))
    n2 = float(input('input2:'))
    print(n1 / n2)
# 如果出现异常，捕获异常，需要提供异常类型 ，可以同时捕获多个   
except ValueError:
    print('提供的值存在问题')
except ZeroDivisionError:
    print('0 不能做除数')    
except (KeyboardInterrupt, EOFError):
    print('ctrl + c ,ctrl + d 异常')    
# 处理所有异常Exception err错误原因
except Exception as err:
    print('显示异常为: ', err)   
# 没有出现异常才执行
else:    
    print('没有异常')   
# 有无异常都执行
finally：
    print('最后都执行的块')

print('-------')
